function [ nouveauMaillage, tailleNouveauMaillage ] = Remaillage( ancienMaillage, erreurVoulue, erreur )
%REMAILLAGE Summary of this function goes here
%   Detailed explanation goes here

erreurTotale = 0 ;

for i=1:size(erreur,1)
    erreurTotale = erreurTotale + erreur(i);
end

erreurTotale23 = 0 ;

for i=1:size(erreur,1)
    erreurTotale23 = erreurTotale + erreur(i)^(2/3) ;
end

rE=zeros(1,size(erreur,1));

for i=1:size(erreur,1)
    rE(i) = erreurVoulue/( (erreur(i)^(2/3))*(erreurTotale23)^(1/2) ) ;
end

nouveauH = zeros(size(erreur,1),1);

for i=1:size(erreur,1)-1
    nouveauH(i)=rE(i)*(ancienMaillage(i+1)-ancienMaillage(i));
end

% nouveauH
% pause;



nouveauMaillage=zeros(1,1);

k=1;
element=1;

while nouveauMaillage(k) < ancienMaillage(size(ancienMaillage,1)-1,1)
    
    test=nouveauMaillage(k)+nouveauH(element);
    
    if test<ancienMaillage(element+1)
        nouveauMaillage(k+1)=test;
    else
        nouveauMaillage(k+1)=nouveauMaillage(k) + min(nouveauH(element),nouveauH(element+1));
        element=element+1;
    end

    k=k+1;
    
%     nouveauMaillage(k)
    
%     pause
    
    if element == size(ancienMaillage,1)-1

        break
        
    end
    
end
    
% pause

while nouveauMaillage(k) < ancienMaillage(size(ancienMaillage,1),1)
    
%     if nouveauH(element)==0
%         test=nouveauMaillage(k)+nouveauH(element-1);
%     else
%         test=nouveauMaillage(k)+nouveauH(element);
%     end
%     
    test=nouveauMaillage(k)+nouveauH(element);
    
%     taille=ancienMaillage(element+1)
%     element=element
    
%     pause
    
    if test<ancienMaillage(element+1)
        nouveauMaillage(k+1)=test;
        k=k+1
    else
        nouveauMaillage(k+1)=ancienMaillage(element+1);
%         pause
        
        break
    end
    
end

nouveauMaillage=nouveauMaillage';

N=size(nouveauMaillage,1);

nouveauMaillage(N-1)=(nouveauMaillage(N-2)+nouveauMaillage(N))/2;

tailleNouveauMaillage=size(nouveauMaillage,1);
% 
% plot(nouveauMaillage, ones(size(nouveauMaillage,1)));

end